minio 部署、迁移、使用 |
您所在的位置:网站首页 › minio使用256g 实际500g › minio 部署、迁移、使用 |
一、minio 部署
1、单节点部署
部署IP:192.168.206.10 1.1、下载minio的二进制文件 wget https://dl.min.io/server/minio/release/linux-amd64/minio 1.2、规划磁盘minio 数据目录一定不能和 跟/ 在一个磁盘上,要单独挂载,比如规划将minio的数据目录置于/data/minio,如果按照以下的磁盘,/mkdir /data/minio后,目录是在 / 下创建。 故你需要将/data目录单独挂一块盘或者将/data/minio目录单独挂一块盘,否则后续启动会提示Error: Drive `/data/minio/data1` is part of root drive, will not be used API: SYSTEM() Time: 10:12:55 UTC 08/12/2022 Error: Drive `/data/minio/data1` is part of root drive, will not be used (*errors.errorString) 8: internal/logger/logger.go:259:logger.LogIf() 7: cmd/erasure-sets.go:1243:cmd.markRootDisksAsDown() 6: cmd/format-erasure.go:800:cmd.initFormatErasure() 5: cmd/prepare-storage.go:198:cmd.connectLoadInitFormats() 4: cmd/prepare-storage.go:282:cmd.waitForFormatErasure() 3: cmd/erasure-server-pool.go:109:cmd.newErasureServerPools() 2: cmd/server-main.go:694:cmd.newObjectLayer() 1: cmd/server-main.go:531:cmd.serverMain()添加磁盘(演示环境资源有限,只是添加一块2G盘符),由于已经有一块硬件(sda),故第二块磁盘名称为sdb (Linux 硬盘知识) 添加磁盘后开机,进行磁盘格式化分区,并挂载到/data/minio上,操作如下 [root@master01 ~]# fdisk -l /dev/sdb [root@master01 ~]# fdisk /dev/sdb 命令(输入 m 获取帮助):n # n 创建分区 Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p # n 创建主分区 分区号 (1-4,默认 1): # 直接回车,走默认1 起始 扇区 (2048-4194303,默认为 2048): # 直接回车,从默认2048开始 将使用默认值 2048 Last 扇区, +扇区 or +size{K,M,G} (2048-4194303,默认为 4194303): # 直接回车,说明有多少做多少G硬盘 将使用默认值 4194303 分区 1 已设置为 Linux 类型,大小设为 2 GiB 命令(输入 m 获取帮助):p # 打印 磁盘 /dev/sdb:2147 MB, 2147483648 字节,4194304 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x23a6127b 设备 Boot Start End Blocks Id System /dev/sdb1 2048 4194303 2096128 83 Linux 命令(输入 m 获取帮助):w # 保存分区 The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘。 [root@master01 ~]# ll /dev/sdb* brw-rw---- 1 root disk 8, 16 4月 7 04:43 /dev/sdb brw-rw---- 1 root disk 8, 17 4月 7 04:43 /dev/sdb1 [root@master01 ~]# mkfs.xfs /dev/sdb1 # 格式化分区 meta-data=/dev/sdb1 isize=512 agcount=4, agsize=131008 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=524032, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@master01 ~]# blkid # 查看/dev/sdb1的uuid /dev/sda1: UUID="c219aeb3-fb5b-4009-9e9c-e3396a36ea3b" TYPE="xfs" /dev/sda2: UUID="B6PX7v-uSkg-08db-w9V3-TT31-x7x5-ehMsr4" TYPE="LVM2_member" /dev/sdb1: UUID="1f00db8b-dc34-4528-93ad-043192739a20" TYPE="xfs" /dev/mapper/centos-root: UUID="243723b9-2e4d-40a6-aed9-23e227d61572" TYPE="xfs" /dev/mapper/centos-swap: UUID="9ded6aff-9d46-4b84-abb9-1de8691c5bf7" TYPE="swap" [root@master01 ~]# echo "UUID=1f00db8b-dc34-4528-93ad-043192739a20 /data/minio xfs defaults 0 0 " >> /etc/fstab # 将/dev/sdb1 挂载到 /data/minio [root@master01 ~]# tail -n 2 /etc/fstab #UUID=e27dc238-c4d9-4921-81a0-53d7002f0e33 /opt/yyiuap/ xfs defaults 0 0 UUID=1f00db8b-dc34-4528-93ad-043192739a20 /data/minio xfs defaults 0 0 [root@master01 ~]# mount -a # 读取/etc/fstab 文件重新挂载 [root@master01 ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root 48G 11G 38G 22% / devtmpfs 899M 0 899M 0% /dev tmpfs 911M 0 911M 0% /dev/shm tmpfs 911M 9.6M 902M 2% /run tmpfs 911M 0 911M 0% /sys/fs/cgroup /dev/sda1 1014M 142M 873M 14% /boot tmpfs 183M 0 183M 0% /run/user/0 /dev/sdb1 2.0G 33M 2.0G 2% /data/minio # 发现已经挂载 1.3、规划目录结构和时间服务器 [root@master minio]# ntpdate -u cn.pool.ntp.org [root@master minio]# mkdir bin data1 data2 config certs log run [root@192 opt]# tree -f minio/ minio ├── minio/bin # 二进制文件目录 │ └── minio/bin/minio ├── minio/certs # 证书文件目录 │ ├── minio/certs/private.key # 私钥文件 │ ├── minio/certs/public.crt # 证书文件 ├── minio/config # 配置文件目录 ├── minio/data1 # minio数据目录1 ├── minio/data2 # minio数据目录2 ├── minio/log # 日志文件目录 │ └── minio/log/minio.log # 日志文件 └── minio/run # 自定义脚本 ├── minio/run/create_cert.sh # 生成证书脚本 ├── minio/run/minio.service # minio service文件 ├── minio/run/stop.sh # minio服务停止脚本 └── minio/run/start.sh # minio服务启动脚本 1.4、配置启动参数 将下载的 minio 放入 /data/minio/bin/ [root@master bin]# cd /data/minio/bin [root@master bin]# rz minio [root@master bin]# ll -rw-r--r-- 1 root root 96837632 4月 7 11:51 minio 定义minio.service(分https和http启动) [root@master minio]# vi /usr/lib/systemd/system/minio_http.service [Unit] Description=Minio service Documentation=This is a Minio Service. [Service] Type=forking # 启动服务时的等待的秒数,TimeoutStartSec 的值指定为 0,从而关闭超时检测。 TimeoutStartSec=10 # 工作目录 WorkingDirectory=/data/minio # 服务运行用户 User=root # 服务运行用户组 Group=root Restart=on-failure RestartSec=15s ExecStart=/data/minio/run/start_http.sh ExecStop=/data/minio/run/stop.sh [Install] WantedBy=multi-user.target [root@master minio]# vi /usr/lib/systemd/system/minio_https.service [Unit] Description=Minio service Documentation=This is a Minio Service. [Service] Type=forking # 启动服务时的等待的秒数,TimeoutStartSec 的值指定为 0,从而关闭超时检测。 TimeoutStartSec=10 # 工作目录 WorkingDirectory=/data/minio # 服务运行用户 User=root # 服务运行用户组 Group=root Restart=on-failure RestartSec=15s ExecStart=/data/minio/run/start_https.sh ExecStop=/data/minio/run/stop.sh [Install] WantedBy=multi-user.target start.sh 启动脚本(https) [root@master01 run]# vi /data/minio/run/start_https.sh #!/bin/bash ## MinIO启动脚本 # 设置环境变量 # 设置HOME export MINIO_HOME=/data/minio # 默认配置文件目录${HOME}/.minio,默认会将配置信息生成到config.json文件 export MINIO_COFNIG_DIR=/${MINIO_HOME}/config # TLS证书目录: # 私钥private.key # 证书public.crt export MINIO_CERTS_DIR=/${MINIO_HOME}/certs # 日志目录 export MINIO_LOG_PATH=/${MINIO_HOME}/log # 访问凭证AK export MINIO_ROOT_USER=minio_admin # 访问凭证SK export MINIO_ROOT_PASSWORD=minio_admin!@# # 是否开启web访问,默认是开启 export MINIO_BROWSER=on # 证书密码 export MINIO_CERT_PASSWD=admin123!@# # 支持path-style访问,默认 http://mydomain.com/bucket/object export MINIO_DOMAIN=test_minio.com # MINIO的集群中各节点IP export MINIO_HOST=192.168.206.10 # 39000 为API调用接口, 9000为web console接口 # 启动minio nohup /${MINIO_HOME}/bin/minio server \ --config-dir ${MINIO_COFNIG_DIR} \ --certs-dir ${MINIO_CERTS_DIR} \ --address ${MINIO_HOST}:39000 --console-address ":9000" \ https://${MINIO_HOST}/${MINIO_HOME}/data1 https://${MINIO_HOST}/${MINIO_HOME}/data2 \ >> ${MINIO_LOG_PATH}/minio.log 2>&1 &其中 MINIO_CERTS_DIR=/${MINIO_HOME}/certs 和 MINIO_CERT_PASSWD=admin123!@# 定义的https证书 minio 是支持副本的,也就是说传入minio中的数据,会一摸一样复制两份分别在规划/data//minio/data1 和 /data//minio/data2中,数据会存在两份,在没有设置纠删码的前提下。故需要在启动脚本中配置神声明 如果规划中,如果项设置3个存储目录,则就要有/data//minio/data1 和 /data//minio/data2 和 /data//minio/data3,然后在修改启动参数如下() minio 在新版本后,控制台页面的端口和api端口区分出来,如何配置如下 将源数据minio集群通过rclone拷贝到目标机器(注意,此处由于 minio 开启纠删码不能使用 scp,只能用rclone拷贝) ,随后在目标机器使用 rclone 迁移到单minio 查看源数据集群数据结构,查看有多少个桶使用 rclone ,将源 minio 集群数据的 test1 test2 test3 桶,导入到本地 [root@master01 ~]# ifconfig |grep 192 inet 192.168.206.10 netmask 255.255.255.0 broadcast 192.168.206.255 [root@master data]# mkdir -p /data/minio_backup/{test1 test2 test3} [root@master minio_backup]# rclone sync -P minio-old:test1 /data/minio_backup/test1 Transferred: 21.825M / 21.825 MBytes, 100%, 59.059 MBytes/s, ETA 0s Transferred: 15 / 15, 100% Elapsed time: 0.4s [root@master minio_backup]# rclone sync -P minio-old:test2 /data/minio_backup/test2 [root@master minio_backup]# rclone sync -P minio-old:test3 /data/minio_backup/test3 或者可以使用 rclone copy minio-old:test1 /data/minio_backup/test1 rclone copy minio-old:test2 /data/minio_backup/test2 rclone copy minio-old:test3 /data/minio_backup/test3修改rclone.conf,写的是单节点minio的信息 [root@master ~]# cat /root/.config/rclone/rclone.conf [minio-new] type = s3 provider = Minio env_auth = false access_key_id = minio_admin secret_access_key = minio_admin!@# region = endpoint = http://192.168.206.10:39000 location_constraint = server_side_encryption = # 导入节点不用事先创建test1 test2 test3 桶,会自动创建 [root@master minio_backup]# rclone sync -P minio-old:test1 /data/minio_backup/test1 Transferred: 21.825M / 21.825 MBytes, 100%, 59.059 MBytes/s, ETA 0s Transferred: 15 / 15, 100% Elapsed time: 0.4s [root@master minio_backup]# rclone sync -P minio-old:test2 /data/minio_backup/test2 Transferred: 1.282M / 1.282 MBytes, 100%, 15.141 MBytes/s, ETA 0s Transferred: 8 / 8, 100% Elapsed time: 0.1s [root@master minio_backup]# rclone sync -P minio-old:test3 /data/minio_backup/test3 Transferred: 296.772M / 296.772 MBytes, 100%, 73.345 MBytes/s, ETA 0s Transferred: 38 / 38, 100% Elapsed time: 4.1s在目标机器或者源数据机器,安装rclone, 在 rclone 中定义,源跟目录,执行后自动迁移。注意不管是源还是目的,https都会提示没有证书,所以只能同步http [minio-old] type = s3 provider = Minio env_auth = false access_key_id = minio_admin secret_access_key = minio_admin!@# region = endpoint = http://192.168.206.5:39000 location_constraint = server_side_encryption = [minio-new] type = s3 provider = Minio env_auth = false access_key_id = minio_admin secret_access_key = minio_admin!@# region = endpoint = http://192.168.206.10:39000 location_constraint = server_side_encryption = rclone sync minio-old:test7 minio-new:test7 # 将 minio-old 的 test7 桶 导入到 minio-new 的 test7桶 1.2、迁移注意事项1、可以使用rclone迁移项目,迁移对象可以是 单节点 迁移到 集群 (rclone 目的IP写集群中随机一台节点即可) 集群 迁移到 单节点(rclone 源IP写集群中随机一台节点即可) 单节点 迁移到 单节点 集群 迁移到 集群 (rclone 源、目的IP写集群中随机一台节点即可)2、可以使用rclone导出到本地,在scp到目的地址机器后,进行本地导入新 minio 3、rclone 迁移两端不能是https协议,因为没有证书导致不能获取数据,在网上查找并没有找到关于rclone 添加证书的内容,故只能将 https 的 minio 使用 http 启动,但https 启动的 minio 改用 http 后,可能存在登录 minio 后,页面变成空白,f12 提示 session 是 access denied,故猜测是有session的缓存,但具体怎么清楚minio的session,也没有找到,一定不是在 /data/minio中存放的,只能多一天左右时间,session自动过期。 4、可以使用minio管理工具mc进行迁移 5、可以使用 cp 或者 scp 直接拷贝到新的 minio(仅限于两端数据节点都是对等的,例如源minio为单节点,并有data1 data2 data2 ,目的 minio 也必须一模一样,scp 也要一摸一样的拷贝数据到对端相对应的目录 ),只要触碰不对等,则一定不能使用 cp 或者 scp 直接拷贝,因为 minio 是由纠删码,也就是意味者每条数据 data1 data2 data3 下存放的东西不一样,可能是数据,可能是纠删码对应申城的校验码(默认数据和校验码1:1,比如data1 data2 data3 data4,则2个数据2个校验) 6、minio在 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |